// package org.shaofan.file;
//
//
// import org.bytedeco.javacv.FFmpegFrameGrabber;
// import org.bytedeco.javacv.Frame;
// import org.springframework.web.multipart.MultipartFile;
//
// import javax.imageio.ImageIO;
// import java.awt.*;
// import java.awt.image.BufferedImage;
// import java.io.File;
// import java.time.LocalDate;
// import java.time.format.DateTimeFormatter;
// import java.util.ArrayList;
// import java.util.UUID;
//
//
// public class VideoUtil {
//
//
//     /**
//      * 获取上传文件类型
//      */
//     public String getFileType(MultipartFile file) {
//         String[] s = file.getOriginalFilename().split("\\.");
//         ArrayList list = new ArrayList();
//         for (String s1 : s) {
//             list.add(s1);
//         }
//         if (list.size() > 1) {
//             return list.get(list.size() - 1).toString();
//         }
//         return null;
//     }
//
//
//     /**
//      * 获取UUID作为文件名
//      */
//     public String getUuid() {
//         return UUID.randomUUID().toString().replaceAll("-", "");
//     }
//
//
//     /**
//      * date>>string
//      * yyyyMMdd
//      */
//     public static String dateToString() {
//         return LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMM"));
//
//     }
//
// //    /**
// //     * 获取指定视频的帧并保存为图片至指定目录
// //     *
// //     * @param videofile 源视频文件路径
// //     * @param framefile 截取帧的图片存放路径
// //     * @throws Exception
// //     */
// //    public static void fetchFrame(String videofile, String framefile)
// //            throws Exception {
// //        long start = System.currentTimeMillis();
// //        File targetFile = new File(framefile);
// //        FFmpegFrameGrabber ff = new FFmpegFrameGrabber(videofile);
// //        ff.start();
// //        int lenght = ff.getLengthInFrames();
// //        int i = 0;
// //        Frame f = null;
// //        while (i < lenght) {
// //            // 过滤前5帧，避免出现全黑的图片，依自己情况而定
// //            f = ff.grabFrame();
// //            if ((i > 5) && (f.image != null)) {
// //                break;
// //            }
// //            i++;
// //        }
// //        opencv_core.IplImage img = f.image;
// //        int owidth = img.width();
// //        int oheight = img.height();
// //        // 对截取的帧进行等比例缩放
// //        int width = 800;
// //        int height = (int) (((double) width / owidth) * oheight);
// //        BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
// //        bi.getGraphics().drawImage(f.image.getBufferedImage().getScaledInstance(width, height, Image.SCALE_SMOOTH),
// //                0, 0, null);
// //        ImageIO.write(bi, "jpg", targetFile);
// //        //ff.flush();
// //        ff.stop();
// //        System.out.println(System.currentTimeMillis() - start);
// //    }
//
//
//     /**
//      * 获取指定视频的帧并保存为图片至指定目录
//      *
//      * @param videofile 源视频文件路径
//      * @param framefile 截取帧的图片存放路径
//      * @throws Exception
//      */
//     public static void fetchFrame(String videofile, String framefile)
//             throws Exception {
//         long start = System.currentTimeMillis();
//         File targetFile = new File(framefile);
//         FFmpegFrameGrabber ff = new FFmpegFrameGrabber(videofile);
//         ff.start();
//         int lenght = ff.getLengthInFrames();
//         int i = 0;
//         Frame f = null;
//         while (i < lenght) {
//             // 过滤前5帧
//             f = ff.grabFrame();
//             if ((i > 5) && (f.image != null)) {
//                 break;
//             }
//             i++;
//         }
//         int owidth = f.imageWidth;
//         int oheight = f.imageHeight;
//         // 对截取的帧进行等比例缩放
//         int width = 270;
//         int height = (int) (((double) width / owidth) * oheight);
//         BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
//         bi.getGraphics().drawImage(bi.getScaledInstance(width, height, Image.SCALE_SMOOTH),
//                 0, 0, null);
//         ImageIO.write(bi, "jpg", targetFile);
//         //ff.flush();
//         ff.stop();
//         System.out.println(System.currentTimeMillis() - start);
//     }
//
//     public static void main(String[] args) throws Exception {
//
//         VideoUtil.fetchFrame("F:\\cloudFile\\1f5dd6320f765c7e0cc89580344ffbca.mp4","F:\\cloudFile\\12.jpg");
//     }
//
// }
